# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# 建立者:        黄周云  
# Name:         lesson01
# Description:  列表方法
# Author:       ASUS
# Date:         2019/1/18
#-------------------------------------------------------------------------------


#append
numbers =[1,2,3,4,]
numbers.append(5)
print(numbers)                             #[1, 2, 3, 4, 5]
numbers.append([6,7])
print(numbers)                             #[1, 2, 3, 4, 5, [6, 7]]

#clear
names=["Bill","Mary","Jack"]
names.clear()
print(names)                               #[]

#copy
a = [1,2,3]
b=a                                        #b和a指向了同一个列表
b[1]=30                                    #修改了列表b的元素值，a列表中对应的元素值也会改变
print(a)                                   #[1, 30, 3]

aa=[1,2,3]
bb=aa.copy()                               #bb是aa的副本
bb[1]=30                                   #修改了bb中的元素值，aa中的元素值不会改变
print(aa)                                  #[1, 2, 3]
print(bb)                                  #[1, 2, 3]

#count
search=["he","new","he","he","world","peter",[1,2,3],"ok",[1,2,3]]
print(search.count("he"))                 #3，计算search中"he"出现的次数
print(search.count([1,2,3]))              #2

#extend
a=[1,2,3]
b=[4,5,6]
a.extend(b)                              #extend并不返回值
print(a)                                 #[1, 2, 3, 4, 5, 6]
#列表连接
a=[1,2,3]
b=[4,5,6]
print(a+b)                               #[1, 2, 3, 4, 5, 6]
#分片赋值
a=[1,2,3]
b=[4,5,6]
a[len(a):]=b
print(a)                                #[1, 2, 3, 4, 5, 6]

# index
s=("I","love","you")
print(s.index("you"))                   #2，"you"在s列表中第一次出现的索引位置
# print(s.index("xyz")) 异常，xyz不在s列表中

#insert
numbers=[1,2,3,4,5]
numbers.insert(3,"four")
print(numbers)                          #[1, 2, 3, 'four', 4, 5],在列表的第四个位置插入"four"
#分片赋值
numbers=[1,2,3,4,5]
numbers[3:3]=["four"]
print(numbers)                          #[1, 2, 3, 'four', 4, 5]

# pop
numbers=[1,2,3]
print(numbers.pop())                    #3，删除列表中最后一个元素（默认），并返回该元素的值
print(numbers.pop(0))                   #1
print(numbers)                          #[2]

#remove
words=["he","nem","he","yes","break"]
words.remove("he")                      #删除列表中第一次出现的"he"
print(words)                            #['nem', 'he', 'yes', 'break']
# words.remove("ok")     异常

#reverse
numbers=[1,2,3,4,5,6]
numbers.reverse()
print(numbers)                          #[6, 5, 4, 3, 2, 1]，将列表中的元素值倒序摆放

#sort
numbers=[5,4,1,7,4,2]
numbers.sort()                      #升序，默认
print(numbers)                      #[1, 2, 4, 4, 5, 7]

x=[5,4,1,7,5]
x.sort(reverse=True)                #降序
print(x)                            #[7, 5, 5, 4, 1]
# values=[6,5,2,7,"bb","cc"]
# values.sort()                     异常，元素类型必须是可比较的
x=[5,4,1,7,5]
#对副本进行排序
#方法1：分片操作
x=[5,4,1,8,6]
y=x[:]
y.sort()
print(x)                           #[5, 4, 1, 8, 6]
print(y)                           #[1, 4, 5, 6, 8]
#方法2：使用sorted函数
x=[7,6,4,8,5]
y=sorted(x)                        #对x的副本进行排序
print(x)                           #[7, 6, 4, 8, 5]
print(y)                           #[4, 5, 6, 7, 8]
#sorted可以对任何序列进行排序
print(sorted("geekori"))           #['e', 'e', 'g', 'i', 'k', 'o', 'r']

